package datastructure.single;

/**
 * @author ZCR
 * @create 2025/8/1 23:53
 *  枚举类实现单例模式 线程安全无需加锁 可以避免通过反射破坏单例
 *  防止反射攻击：
 * 普通单例模式（如饿汉式、懒汉式）可能被反射调用私有构造函数创建新实例，但枚举类的构造函数由 JVM 控制，反射无法直接调用，从根源上避免了这种问题。
 * 防止序列化破坏：
 * 普通单例在序列化时可能通过 readObject 方法创建新实例，而枚举的序列化机制特殊，反序列化时不会创建新对象，只会返回已有的枚举常量。
 * 代码极简：
 * 无需手动编写私有构造函数、静态实例、同步方法等，仅通过枚举常量即可实现单例，减少了出错概率。
 *
 */
public enum Single2 {
    INSTANCE;
    public void doSomething(String str) {
        System.out.println(str);
    }
}
